#!/usr/bin/python
# -*- coding: utf-8 -*-
'''
4.士兵开枪
    需求：
    1）.士兵瑞恩有一把AK47
    2）.士兵可以开火(士兵开火扣动的是扳机)
    3）.枪 能够 发射子弹(把子弹发射出去)
    4）.枪 能够 装填子弹 --增加子弹的数量
'''

#定义一个士兵开枪的类
class play_shibing(object):
    #定义一个初始化方法
    def __init__(self, qiang_name, danjia_size):
        self.name = qiang_name
        self.num = danjia_size
        self.zidan_num = 0

    #定义一个抢方法
    def gun(self):
        if self.zidan_num < self.num:
            a = input('要装满子弹吗？（yes/no）')
            if a == 'yes':
                #一次最多装20发，装满为止
                for i in range(1, 21):
                    if self.zidan_num < self.num:
                        self.zidan_num += 1
                        i += 1
                    else:
                        break
            elif a == 'no':
                print(f'子弹还剩下：{self.zidan_num}')
            else:
                print('指令输入错误，请重新输入！')
                self.gun()
        else:
            print('子弹还满，自己去玩儿把！')

    def kaiqiang(self):
        if self.zidan_num > 0:
            self.zidan_num -= 1
            self.kaiqiang()
        else:
            print('子弹不够，先去装子弹。')
            self.gun()

    def shibing(self):
        a = input('你要开枪吗？(yse/no，退出请输入：q)')
        if a == 'yes':
            self.kaiqiang()
        elif a == 'no':
            print('算了')
        elif a == 'q':
            quit()
        else:
            print('请输入正确指令：')
            self.shibing()



if __name__ == '__main__':
    re = play_shibing('AK47', 50)
    re.shibing()





